package com.wframe.project.jnd.services;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.frame.database.JdataBean;
import com.frame.database.PageResult;
import com.wframe.project.jnd.vo.Product;
import com.wframe.project.jnd.vo.CartBean;
import com.wframe.project.jnd.vo.CartItem;
import com.wframe.project.jnd.vo.PriceBeanVo;
import com.wframe.project.jnd.vo.UrgentProduct;

public interface ProductService {

    public PageResult queryWebProduct(JdataBean parms, int size, int pageno) throws Exception;

    public JdataBean querySubjectProduct(String userid, String channelcode);

    public JdataBean querySubjectProduct1(String userid, String channelcode);

    public JdataBean getProductPrice(String priceid);

    public PageResult queryChannelProduct(String code, int size, int pageno);

    public List<Map> getAttrs(String clscode, String[] seleditems);

    public JdataBean getProductInfo(String priceid) throws Exception;

    JdataBean getProductid(String productid) throws Exception;

    public List<Map> getProductSubCls(String clscode) throws Exception;

    public List<Map> getProductPrices(String productid) throws Exception;

    public List<Map> queryClsNav(String clscode);

    public List<Map> queryAttrNav(String[] itemids);

    public void queryControlsales(String userid, List products);

    public boolean getControlsales(String userid, String productid);

    public void queryPricegrade(String userid, List products);

    public void queryProMotionPricegrade(String userid, List products);

    public void addpopularity(String priceid);

    public PageResult maylike(String priceid, int pagesize, int pageno);

    public void favorite(String userid, String priceid, int action) throws Exception;

    public boolean checkfavorite(String userid, String priceid);

    public PageResult queryFavorite(String userid, int size, int pageno);

    public PageResult queryHotProducts(int size, int pageno) throws Exception;

    PageResult findFavorites(String userId, int pageSize, int pageNo, boolean isAuth);

    PageResult findWebProducts(JdataBean parms, int size, int pageno, int platform);

    List<JdataBean> findWebProductsBarcode(String barcode, String userid);

    PageResult findHotProducts(String userId, int pageSize, int pageNo);

    BigDecimal findAppositePrice(String userid, String productid);

    boolean isControlsales(String userId, Object productId);

    List<Map> isControlsales(String userId, List<PriceBeanVo> prices);

    Map findBasicProductAttrValByProductId(Object productId);

    void deleteFavorites(String userId, String[] ids);

    CartBean findProducts(String userid, List<CartItem> items) throws Exception;

    CartBean findProducts(Map<String, CartItem> items, String userid, int platform);

    List<JdataBean> findProducts(String userid, Map<Integer, CartItem> itemMap, int platform);

    int getAvailableInventory(String productid);

    UrgentProduct findCartProduct(String userid, String pid);

    List<JdataBean> getDataidByUserid(String userid);

    Product findOne(String priceid);

    Product findPowerProduct(String priceid);

    Product findPowerProduct(String userid, String priceid);

    List<Product> findPowerProducts(String userid, Set<String> ids);

    void queryPricegradeAndControlsales(String userid, List products);

}
